package com;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Scanner;

public class Homework0707 {
    public static void main(String[] args) {

        //1. 编写一个函数，实现日期格式化处理
        //2. 编写一个函数，将驼峰命名法(Camel Case)的单词转换为蛇形命名法(Snake Case)的单词。
        //3. 编写一个函数，将蛇形命名法的单词转换为驼峰命名法的单词。
        //# 例子
        //# 驼峰转蛇形
        //camelToSnake("MyName") # 转换后的结果：my_name
        //# 蛇形转驼峰
        //snakeToCamel("my_name") # 转换后的结果：myName
        //
        //4. 编写一个函数，将货币数字以千分位的方式表示。
        //# 例子
        //formatCurrency(1234567.03) # 转换后的结果：1,234,567.03


//        //1.日期函数
//        LocalDate date = LocalDate.now();
//        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
//        String text = date.format(formatter);
//        System.out.println(text);
//
////        //2.编写一个函数，将驼峰命名法(Camel Case)的单词转换为蛇形命名法(Snake Case)的单词。
//        Scanner scan = new Scanner(System.in);
//        System.out.println("请输入一个驼峰命名的名字");
//        String c = scan.next();
//        char[] cArr = c.toCharArray();
//        String aReverse = "";
//        for (int i = 0; i < cArr.length; i++) {
//            if (cArr[i] > 90) {
//                aReverse += cArr[i];
//            } else {
//                cArr[i] += 32;
//                aReverse += "_" + cArr[i];
//            }
//        }
//        System.out.println(aReverse);
//
//        //3. 编写一个函数，将蛇形命名法的单词转换为驼峰命名法的单词。
//        System.out.println("请输入一个蛇形命名的名字");
//        String s = scan.next();
//        String sReverse = "";
//        char[] sb = s.toCharArray();
//        for (int i = 0; i < sb.length; i++) {
//            if (sb[i] == '_') {
//                sb[i + 1] -= 32;
//            } else {
//                sReverse += sb[i];
//            }
//        }
//        System.out.println(sReverse);


        //4. 编写一个函数，将货币数字以千分位的方式表示。
        //# 例子
        //formatCurrency(1234567.03) # 转换后的结果：1,234,567.03
        System.out.println(fmtMicrometer("1234567123123123.01"));



//        Scanner scan = new Scanner(System.in);
//        System.out.println("请输入一个数");
//
//        double f =  123456.03;
//        String fString = f + "";
//        System.out.println(fString);
//        String fQ = "";
        //找到小数点的下标值
//        int indexOfSmallNumberPoint = fString.indexOf(".");
//        int fLength = fString.length();
//
//
//        System.out.println(indexOfSmallNumberPoint);
//        if (indexOfSmallNumberPoint % 3 == 0) {
//            for (int i = 0; i < fLength; i++) {
//                 if ((i+1) % 3 == 0&&i>=indexOfSmallNumberPoint){
//                    fQ+=fString.charAt(i);
//                }else if ((i+1) % 3 == 0&&i!=(indexOfSmallNumberPoint-1)) {
//                    fQ += fString.charAt(i) + ",";
//                }
//                else {
//                    fQ += fString.charAt(i);
//                }
//            }
//        }
//        if (indexOfSmallNumberPoint % 3 == 1) {
//
//        }
//        if (indexOfSmallNumberPoint % 3 == 2) {
//
//        }
//        System.out.println(fQ);

//        }


    }

    /**
     * 格式化数字为千分位显示；
     * @param 要格式化的数字；
     * @return
     */
    public static String fmtMicrometer(String text)
    {
        DecimalFormat df = null;
        if(text.indexOf(".") > 0)
        {
            if(text.length() - text.indexOf(".")-1 == 0)
            {
                df = new DecimalFormat("###,##0.");
            }else if(text.length() - text.indexOf(".")-1 == 1)
            {
                df = new DecimalFormat("###,##0.0");
            }else
            {
                df = new DecimalFormat("###,##0.00");
            }
        }else
        {
            df = new DecimalFormat("###,##0");
        }
        double number = 0.0;
        try {
            number = Double.parseDouble(text);
        } catch (Exception e) {
            number = 0.0;
        }
        return df.format(number);
    }

}
